import React, { useEffect, useRef } from 'react';
import * as echarts from 'echarts';

const HomeCount = () => {
    const chartRef = useRef(null);
    let myChart = null;

    useEffect(() => {
        // 基于准备好的dom，初始化echarts实例
        myChart = echarts.init(chartRef.current);
        const option = {
            // 标题
            title: {
                text: '数据统计'
            },
            tooltip: {
                // 折线图
                trigger: 'axis'
            },
            // 图例
            legend: {
                data: ['订单', '销售额', '注册人数', '管理人员']
            },
            grid: {
                left: '3%',
                right: '4%',
                bottom: '3%',
                containLabel: true
            },
            toolbox: {
                feature: {
                    saveAsImage: {}
                }
            },
            // 横坐标轴设置
            xAxis: {
                // 类型是类目型
                type: 'category',
                // 刻度值显式位置是否在中间
                boundaryGap: false,
                // 数据
                data: ['第一周', '第二周', '第三周', '第四周', '第五周', '第六周', '第七周']
            },
            // 纵坐标设置
            yAxis: {
                type: 'value'
            },
            // 显式数据系列
            series: [
                {
                    name: '订单',
                    type: 'line',
                    stack: 'Total',
                    data: [120, 132, 101, 134, 90, 230, 210]
                },
                {
                    name: '销售额',
                    type: 'line',
                    stack: 'Total',
                    data: [220, 182, 191, 234, 290, 330, 310]
                },
                {
                    name: '注册人数',
                    type: 'line',
                    stack: 'Total',
                    data: [150, 232, 201, 154, 190, 330, 410]
                },
                {
                    name: '管理人员',
                    type: 'line',
                    stack: 'Total',
                    data: [320, 332, 301, 334, 390, 330, 320]
                },
            ]
        };
        // 使用刚指定的配置项和数据显示图表。
        option && myChart.setOption(option);

        // 实现 echarts 自适应
        const onResize = () => {
            myChart.resize();
        };
        // 监听窗口大小变化
        window.addEventListener('resize', onResize);

        // 销毁周期 消除事件监听
        return () => {
            window.removeEventListener('resize', onResize);
            myChart.dispose();
        };
    }, []);

    return (
        <div
            id="count-box"
            ref={chartRef}
            style={{ width: '100%', height: '100%' }}
        ></div>
    );
};

export default HomeCount;
    